class Beneficio < ActiveRecord::Base

  default_scope :order => 'modalidade DESC'

  has_many :produto_incentivados, :dependent => :destroy
  belongs_to :empreendimento
  delegate :capital_social_valor, :pleito, :to => :empreendimento, :allow_nil => true

  # Validations
  validates_presence_of     :modalidade, :documento_concessorio, :fruicao_inicial, :fruicao_final
  validate :validar_ano
  validates_numericality_of :fruicao_inicial,         :greater_than_or_equal_to => 1990, :less_than_or_equal_to => 2050 ,  :only_integer => true
  validates_numericality_of :fruicao_final,         :greater_than_or_equal_to => 1990, :less_than_or_equal_to => 2050 ,  :only_integer => true
  
  validates_associated :empreendimento, :message => "deve ter Capital Social preenchido (Informações Adicionais)"

  # Callbacks
  def before_destroy
    if empreendimento.beneficios.count <= 1
      #errors.add_to_base "Impossível excluir benefício concedido. Ao menos um deve ser informado."
      #false
    end
  end
  
  def validar_ano
    return if !(!fruicao_inicial.nil? and !fruicao_final.nil? and fruicao_inicial > fruicao_final)
    errors.add_to_base "O período inicial de fruição deve ser igual o inferior ao período final."
  end

end
